<?php

class Solicitudes_PonenciaController extends Zend_Controller_Action
{
	private $nav;
	//private $infoPrograma;
	private $codproceso;
	private $datosproceso;
	//private $codestado;
	//private $datospar;
	
	
    public function init() {
        $sesionProceso = new Zend_Session_Namespace("PROCESO");
		$this->codproceso = $sesionProceso->codproceso;
		$Proceso = new Solicitudes_Model_DetalleSolicitud();
        $this->datosproceso = $Proceso->cargardatosProceso($this->codproceso);
		
		$Programa = new Solicitudes_Model_DetalleSolicitud();
		$this->view->infoPrograma = $Programa->cargardatosPrograma($this->datosproceso["codprograma"]);
		$this->view->infoPrograma["codproceso"] = $this->codproceso;
//        $this->codestado =  $Programa->getEstadoProceso($sesionProceso->codproceso);
    	
    	$this->nav = new App_Util_Navegacion();
		$this->nav->agregar_navegacion("Lista de solicitudes", "/solicitudes/index/lista","Lista de solicitudes");
        $this->nav->agregar_navegacion("Ponencia de consejero","","");
		$this->view->nav = $this->nav;
        		
            $this->view->extensiones = $Programa->cargardatosPrograma("","",$this->view->infoPrograma["codprograma"]);
    	    
    	    if ($this->view->infoPrograma["extension"]==1){
    	        if (!empty($this->view->infoPrograma["pro_codprograma"])){
    	            $this->view->programaextiende = $Programa->cargardatosPrograma($this->view->infoPrograma["pro_codprograma"]);
    	        }
    	    }
		/*$serviceTable = new Visitas_Model_ParesProceso();
		$this->datospar = $serviceTable->getCodigoParProceso($this->datosproceso["codproceso"],App_User::getCodigoUsuario());*/
		
		//Resumen Informacion del programa (va en todos los actions)
		//$this->instituciones = new Instituciones_Model_Instituciones();
		//$infoinstitucion= $this->instituciones->cargardatosInfo($codinstitucion);
		//$this->view->infoInstitucion=$infoinstitucion;
    }

    public function indexAction() {
		$detalleSolicitudService = new Solicitudes_Model_DetalleSolicitud();
		
		$codproceso = $this->codproceso;
		
	    if( $this->getRequest()->isPost() ) {
	        
	        $acreditar = $this->_getParam("acreditar");
	        $tiempo = $this->_getParam("tiempo");
	        $fortalezas = $this->_getParam("fortalezas");
	        $debilidades = $this->_getParam("debilidades");
	        $comentarios = $this->_getParam("comentarios");
	        $recomendaciones = $this->_getParam("recomendaciones");
			$mustSave = true;
			try {
		    	if ($acreditar == "S" && (empty($tiempo) || empty($fortalezas) || empty($debilidades) || empty($comentarios)) ) {
					throw new Exception("Si va a acreditar como 'SI', debe diligenciar el tiempo, las fortalezas, debilidades y comentarios.");
				}
				if ($acreditar == "N" && empty($recomendaciones)) {
					throw new Exception("Si va a acreditar como 'NO', debe diligenciar las recomendaciones.");
				}
				
			} catch (Exception $e) {
			    $this->view->priorityMessenger($e->getMessage(), "error");
			    $mustSave = false;
			}
			
			try {
			    if (is_null($codproceso)) {
				    throw new Exception("Ha ocurrido un error interno al enviar el código del proceso en el formulario.");
				}
				if($mustSave) {
				    $datos=array();
				    $datos["codproceso"] = $codproceso;
				    $datos["fortalezas_prop"] = $fortalezas;
				    $datos["debilidades_prop"] = $debilidades;
				    $datos["comentarios_prop"] = $comentarios;
				    $datos["recomendaciones_prop"] = $recomendaciones;
				    $datos["acreditar_prop"] = empty($acreditar)?null:$acreditar;
				    $datos["tiempo_prop"] = $tiempo;
				    
				    $datos["fortalezas"] = $fortalezas;
				    $datos["debilidades"] = $debilidades;
				    $datos["comentarios"] = $comentarios;
				    $datos["recomendaciones"] = $recomendaciones;
				    $datos["acreditar"] = empty($acreditar)?null:$acreditar;
				    $datos["tiempo"] = $tiempo;
				    //Zend_Debug::dump($datos);
				    $detalleSolicitudService->guardardatosProceso($datos);
    				$this->view->priorityMessenger("Los datos se han guardado correctamente", "success");
    				$this->_helper->redirector("index");
				}
				
			} catch (Exception $e) {
				$this->view->priorityMessenger($e->getMessage(), "error");
			}
		}
		
		$this->view->infoProceso = $detalleSolicitudService->cargardatosProceso($codproceso);
    }
    
    public function finalizarAction() {
    	$codproceso = $this->codproceso;
    	
    	try {
            $historico = new Solicitudes_Model_Historicoprocesos();
            $historico->guardarEstadoProceso($codproceso, Solicitudes_Model_Historicoprocesos::CON_PONENCIA_DEL_CONSEJERO);
            $this->view->priorityMessenger("El proceso de ponencia del consejero finalizó correctamente", "success");
        } catch(Exception $e) {
            $this->view->priorityMessenger($e->getMessage(), "error");
        }
        $this->_helper->redirector("lista","index");
    }

    
}//fin de la clase

